1. 提交需求
      *
      *

      *
      *
      *
      立即提交
      点击”立即提交”,表明我理解并同意 《黄金城科技隐私条款》

      logo

        产品与服务
        解决方案
        技术支持
        合作发展
        关于黄金城

        申请试用
          黄金城官网实验室 | nginx配置错误导致的漏洞
          发布时间:2020-10-16 阅读次数: 459 次

          Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,经常被做为反向代理。而nginx的配置文件nginx.conf的一些错误配置可能会引发一些黄金城官网漏洞。


          01

          目录穿越漏洞


          1)漏洞简介


          目录穿越漏洞常见于Nginx做反向代理的情况,动态的部分被proxy_pass传递给后端端口,而静态文件需要Nginx来处理。假设静态文件存储在/home/目录下,而该目录在url中名字为files,那么就需要用alias设置目录的别名。


          在如下配置中设置目录别名时,/files配置为/home/的别名,那么当我们访问/files../时,nginx实际处理的路径时/home/../,从而实现了穿越目录。





          2)漏洞复现


          1. 修改/usr/local/nginx/conf/nginx.conf,在如下图位置添加如下内容:





          2. 重启nginx服务





          3. 浏览器访问http://192.168.215.149/files/





          4. 在files后面加上..可成功穿越到上级目录,即访问http://192.168.215.149/files../





          3)修复建议


          1. 修改/usr/local/nginx/conf/nginx.conf,使用/闭合/files,形成/files/。





          2. 重启nginx服务,再次访问http://192.168.215.

          149/files../,提示404,说明该漏洞不存在。





          02

             CRLF注入漏洞


          1)漏洞简介


          CRLF是”回车 + 换行”( )的简称,,其十六进制编码分别为0x0d和0x0a。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF来取出HTTP 内容并显示出来。所以,一旦我们能够控制HTTP 消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie或者HTML代码。CRLF漏洞常出现在Location与Set-cookie消息头中,可造成固定会话漏洞和反射型xss漏洞。


          2)漏洞复现


          1. 在nginx的配置文件nginx.conf的如下位置中,加上一句return 302 https://$host$uri。这句话的意思是,在用nginx访问一个链接时,会用https协议访问,并且返回一个302跳转给用户。其中的$uri是我们可以控制的,通过注入一个CRLF和两个CRLF来选择注入到http header还是http body。





          2. 重启nginx服务





          3. 先注入一个CRLF,访问http://102.168.215.

          149:8080/%0a%0dSet-Cookie:%20a=1,抓包。如下图,可以看到成功将会话Cookie注入到http header中了。





          4. 注入两个两个CRLF,访问http://192.

          168.215.149:8080/%0d%0a%0d%0a。如下图,可以看到成功将内容注入到http body中了。





          3)修复建议


          过滤 、 之类的换行符,避免输入的数据污染到其他HTTP头

          免费试用
          服务热线

          马上咨询

          400-811-3777

          回到顶部
          【网站地图】【sitemap】